package model

import (
	"fx_swift_boss/pkg/crypt"
)

// FxBoss  boss表
type FxBoss struct {
	ID       int64  `json:"id"`       //  主键
	Account  string `json:"account"`  //  账户
	Password string `json:"password"` //  密码
	Salt     string `json:"salt"`     //  用于密码加密
	Email    string `json:"email"`    //  邮箱
	Type     int    `json:"type"`     // 0-超级管理员,1-子帐号
}

// FxNotify  站内通知表
type FxNotify struct {
	ID      int64  `json:"id"`      //  主键
	Account string `json:"account"` //  业务主键
	Content string `json:"content"` //  内容
	Status  int64  `json:"status"`  //  0-未读,1-已读
}

func (m *FxBoss) ComparePassword(password string) error {
	return crypt.ComparePassword(m.Password, m.Salt, password)
}

// FxRole  角色表
type FxRole struct {
	ID   int64  `json:"id"`   //  主键
	Name string `json:"name"` //  角色名称
}

// FxAuth  权限表
type FxAuth struct {
	Name string `json:"name"` //  权限名称
}

// FxUserRoleMapping  用户和角色关联表
type FxUserRoleMapping struct {
	ID      int64  `json:"id"`      //  主键
	Account string `json:"account"` //  用户编号
	RoleId  int64  `json:"role_id"` //  角色Id
}

// FxRoleAuthMapping  角色和权限关联表
type FxRoleAuthMapping struct {
	ID       int64  `json:"id"`        //  主键
	RoleId   int64  `json:"role_id"`   //  角色Id
	AuthName string `json:"auth_name"` //  权限名称
}

// FxUserAuthMapping  用户和权限关联表
type FxUserAuthMapping struct {
	ID       int64  `json:"id"`        //  主键
	Account  string `json:"account"`   //  用户编号
	AuthName string `json:"auth_name"` //  权限名称
}

type FxPlacard struct {
	ID      int64  `json:"id"`
	Type    string `json:"type"`
	Content string `json:"content"`
	Flag    string `json:"flag"`
}
